{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "8e9b6cfc-eb40-47e9-8491-4671e6da2341",
   "metadata": {},
   "source": [
    "Chapter 16\n",
    "# 连通分量\n",
    "Book_6《数据有道》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "578863bd-65c3-42fb-bd76-43cf8362d788",
   "metadata": {},
   "outputs": [],
   "source": [
    "import networkx as nx\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b5106b9d-ca52-43f5-abc5-0a79dcb699a8",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = nx.gnp_random_graph(100, 0.01, seed=8)\n",
    "# 创建随机图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ae4db3ce-da9d-4011-9a1b-44d0d009811d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "pos = nx.spring_layout(G, seed = 8)\n",
    "nx.draw_networkx(G, pos, \n",
    "                 with_labels = False,\n",
    "                 node_size=20)\n",
    "plt.savefig('全图.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c242aa7d-2e73-48f2-a88f-a4efd088d328",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查无向图是否连通\n",
    "nx.is_connected(G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "480d33c9-597d-4cea-97d8-b4b67b3adcca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "49"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 连通分量的数量\n",
    "nx.number_connected_components(G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6d2c1b2f-946d-41c9-9892-c1b83e1d6f44",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{96, 66, 35, 9, 12, 46, 47, 51, 25, 90, 30}\n",
      "{64, 1, 36, 10, 15, 49, 22, 54, 57}\n",
      "{40, 42, 45, 16, 18, 59, 31}\n",
      "{32, 71, 39, 41, 82, 21, 26}\n",
      "{80, 17, 91, 61, 63}\n",
      "{73, 81, 20, 28}\n",
      "{98, 69, 94, 87}\n",
      "{68, 37, 6}\n",
      "{8, 86, 55}\n",
      "{4, 23}\n",
      "{60, 7}\n",
      "{50, 11}\n",
      "{99, 29}\n",
      "{34, 38}\n",
      "{89, 44}\n",
      "{75, 67}\n",
      "{0}\n",
      "{2}\n",
      "{3}\n",
      "{5}\n",
      "{13}\n",
      "{14}\n",
      "{19}\n",
      "{24}\n",
      "{27}\n",
      "{33}\n",
      "{43}\n",
      "{48}\n",
      "{52}\n",
      "{53}\n",
      "{56}\n",
      "{58}\n",
      "{62}\n",
      "{65}\n",
      "{70}\n",
      "{72}\n",
      "{74}\n",
      "{76}\n",
      "{77}\n",
      "{78}\n",
      "{79}\n",
      "{83}\n",
      "{84}\n",
      "{85}\n",
      "{88}\n",
      "{92}\n",
      "{93}\n",
      "{95}\n",
      "{97}\n"
     ]
    }
   ],
   "source": [
    "# 连通分量\n",
    "list_cc = nx.connected_components(G)\n",
    "\n",
    "# 根据节点数从大到小排列连通分量\n",
    "list_cc = sorted(list_cc, key=len, reverse=True)\n",
    "for cc_idx in list_cc:\n",
    "    print(cc_idx)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af4fe97a-cdbb-4ff4-b0f8-45663d15aaaf",
   "metadata": {},
   "source": [
    "## 取出节点数较多的连通分量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "85384d14-c176-49cf-a345-eef2a764c245",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ALx7906hYYg0Rfqxkn7sqCIe10Q5w+OaSDNl99jOVmmOjY0FAFhaWuYyFpF2iY2NhampqegYX8Xjmuj78Lgm0kzyjm2ZlI2vzGlpaQgLC4OJiQlkMlmeBiTSRJIkITY2FiVLloSOjmrOguJxTZQzPK6JNFN2j+1slWYiIiIiIm2mml+ViYiIiIhUCEszEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkB0szEREREZEcetl5UFpaGsLCwmBiYgKZTKboTERqT5IkxMbGomTJktDRUc3vpjyuiXKGxzWRZsrusZ2t0hwWFgZLS8s8C0ekLZ49e4bSpUuLjvFVPK6Jvg+PayLNJO/YzlZpNjExyXiyggUL5k0yIg327t07WFpaZhw7qojHNVHO8Lgm0kzZPbazVZrTT/EULFiQByFRDqjy6VEe10Tfh8c1kWaSd2yr5qQsIiIiIiIVwtJMRERERCQHSzMRERERkRwszUREREREcrA0ExERERHJwdJMRERERCQHSzMRERERkRwszUREREREcrA0ExERERHJwdJMRERERCQHSzMRERERkRx6ogMoW0h4HJ5EJaBskfywNs8vOg4RkcLxfY+INJGy39u0pjS/TUjC8F2B8A0Kz7jNwcYCK9xqwtRIX2AyIiLF4PseEWkiUe9tWjM9Y/iuQPgFR2S6zS84AsN23hCUiIhIsfi+R0SaSNR7m1aU5pDwOPgGhSNVkjLdnipJ8A0Kx+OIeEHJiIgUg+97RKSJRL63aUVpfhKZ9T9gqJz7iYjUzZOohCzvv/csPMv7iYhUkbz3NkV2Oo0vzf7+/hg3tG+Wj3ly5yqkz76xEBGpszKFjbO8v5NzY3Tq1AlHjhxBUlKSklIREeWOvPe2skUUd0Ggxpbmhw8fol27drCzs0Ny5HP8WFgGXZks02N0AOSLeoRe7Vvg559/xr59+5CWliYmMBFRHipnUQAONhaAlPk9TVcmQx3LApgychDu378PV1dXlChRAgMHDsTFixf5HkhEKq2cRQHYVygCKS010+26MhkcbCwUuoqGxpXm169fY8iQIahSpQquXbuGbdu24d9//8WOob/BroJ5psc2sLHAP0sG4u+//0bhwoXRoUMH/Pjjj/D09ERycrKgvwERUd5wt/6AxMeZL4yxq2CODb3qY+zYsbh58yZu376N/v37w8fHBw4ODrC2tsaECRNw584dQamJiLLmbPYa70MDM91mV8EcK9xqKvR1ZVI25iW8e/cOpqamiImJQcGCBRUa6HvFxcVh8eLFWLBgAfT09DBp0iQMGTIEhoaGmR73OCIeoZHxX13T7/Lly5gzZw6OHj2KsmXLYty4cejZs+cXz0EkjzocM+qQkb6fJElo2LAh3r17h/2nLuJpdGKWa5mmpaXBz88PXl5e2LNnD6Kjo2Fra4uuXbvCzc0NlpaWSv4bqB51OGbUISNRbrVq1QphYWHYe+LCNztdTmT7uJGyISYmRgIgxcTEZOfhSpWcnCytW7dOKl68uGRgYCCNHj1aioyMzNVz3rx5U+rUqZMkk8mkEiVKSIsWLZLi4uLyKDFpA1U+ZtKpQ0b6fj4+PhIA6dixYzn+2Q8fPkiHDx+WOnbsKBkaGkoymUxq2LChtH79eikqKkoBadWDOhwz6pCRKDfCwsIkXV1dadWqVXn2nNk9btR2eoYkSThy5AiqVauGAQMGoEmTJnjw4AEWLlyIwoUL5+q5bW1tsWvXLty/fx/NmzfHuHHjUKZMGcyaNQtv377Nm78AEZGCpKWlYeLEibCzs4Ozs3OOf97AwACtWrXC7t278fr1a2zevBkGBgYYOHAgihcvjjZt2mDfvn14//69AtITEX2bp6cn9PX10aVLF6W/tlqW5n/++QcNGzaEq6srSpYsiX///Rfbt29H2bJl8/R1KlasCA8PDwQHB6Nz586YNWsWypQpg4kTJyI8nMs1EZFq2rdvH27cuIG5c+dC9tkF0DlVsGBB9OjRA6dOncLz58/x119/4fnz5+jQoQOKFSuG3r174+zZs0hNTZX/ZEREuSBJEjw8PNC2bVuYmZkp/fXVqjQHBwejY8eOqFevHt6+fQsfHx+cOXMGP/30k0Jft0yZMli5ciVCQ0MxYMAArFixAmXKlMGIESPw/Plzhb42EVFOpKSkYPLkyXBycoK9vX2ePneJEiUwYsQIXL16Fffv38eIESPg6+uLpk2bwsrKCqNHj8b169e5hCcRKYSfnx8ePnyIPn36CHl9tSjN4eHhGD58OH744Qf4+/tj8+bNuHHjBpo3b57rUZScKF68OObPn48nT55g7Nix8PT0RLly5dC/f388evRIaTmIiL5l69atePjwIWbPnq3Q16lUqRKmT5+OoKAgXL58Ge3atcO2bdvw888/o0qVKpg1axZCQkIUmoGItIuHhwesra3RqFEjIa+v0qU5ISEBc+bMQfny5bF161bMnDkTQUFB6NmzJ3R1dYXlKly4MKZNm4YnT55g1qxZOHz4MCpWrAh3d3fcvXtXWC4i0m7v37/HtGnT0LFjR9Ssqdill9LJZDLUrVsXy5cvx4sXL3D8+HH8/PPPmDdvHsqXL4/69etj1apVnNJGRLkSGxuLPXv2oFevXtDREVNfVbI0p6amwsPDAzY2Npg2bRr69OmDR48eYfz48TAyMhIdL4OJiQnGjh2L0NBQLFu2DL6+vqhatSratm2Lf//9V3Q8ItIya9aswcuXLzFz5kwhr6+vrw8nJyds374dr1+/hpeXFwoVKoTff/8dJUuWhIuLC3bs2IH4eMVtc0tEmmnPnj1ISEhAjx49hGVQqdIsSRKOHz+OGjVqoE+fPnBwcMD9+/exZMkSmJuby38CQYyMjDB06FAEBwdj06ZNuH37NmrVqgUnJydcvHhRdDwi0gKxsbGYM2cOevbsiYoVK4qOg/z586NLly7w9vbGy5cvsXTpUkRHR6Nr164oVqwYunXrhhMnTiAlJUV0VCJSA5s2bUKzZs1gZWUlLIPKlOZr166hSZMmcHFxQZEiRXDlyhXs3LkT5cqVEx0t2wwMDNC7d2/cv38fO3fuxIsXL+Dg4AAHBwecPHmSF8cQkcIsWbIEsbGxmDp1qugoX7CwsMCQIUPg7++fcdbw2rVrcHJyQqlSpTB8+HD8888/fI8koq/677//EBAQgN69ewvNodTSHBIeh3MP3uBxxP9OzT1+/BhdunRB7dq18fr1axw9ehTnzp1D7dq1lRktT+nq6qJz584IDAzE4cOH8eHDBzRv3hx16tTBwYMHkZaWJjoiEWmQiIgILFy4EIMHD1b5nfvKlSuHSZMm4d69e/j333/h7u6Offv2oV69erCxscHUqVPx8OFD0TGJSIVs3rwZhQsXhqurq9AcSinNbxOS0N3jCn5dfAG9tlxF40Xn4bbuEoaOGotKlSrh/Pnz2LBhA27evIkWLVoodUUMRdLR0UGrVq1w+fJlnD59GgUKFEDbtm1ha2uLHTt2fHFa8mtfKoiI5Jk3bx4kScKECRNER8k2mUyGn376CYsWLcKzZ89w5swZODg4YOnSpahUqRJq166NpUuX4tWrV6KjEpFAycnJ2Lp1K9zd3ZEvXz6hWZRSmofvCoRfcESm2/xDonDglSmmTJmCoKAg9O3bF3p6esqIo3QymQxNmzbFuXPncOnSJVhZWaFr166oXLkyNm7ciDdv47/4UtHd4wpiEpNFRyciFff8+XOsXLkSo0aNgoWFheg430VXVxdNmjSBh4cHXr16hb1796J06dIYN24cSpUqhWbNmmHr1q149+6d6KhEpGTHjx/HmzdvhE/NAJRQmkPC4+AbFI7Uz+aqyXR0YVCmBroOHIn8+fMrOobKsLOzw/Hjx3H9+nXUrFkT/fv3R+3hq3Ax6E2mx/kFR2DYzhuCUhKRIuXlWaWZM2eiQIECGD16dB4kE8/IyAjt27fHwYMH8erVK6xduxZJSUno2bMnihUrhk6dOuHIkSNISkoSHZWIlGDTpk34+eefUb16ddFRFF+an0QlZHl/aKR2TkWoWbMm9u7di5MBNyAr9SMkZJ6SkipJ8A0K51QNIg3ytalquTmrFBQUhE2bNmHChAkoWLBgHqcVr1ChQujXrx/Onz+Pp0+fYvr06bh//z5cXV1RokQJDBw4EBcvXuR1IkQa6uXLlzh+/LiwHQA/p/DSXKawcZb3ly2iPaPMX6NnViLL+7X1SwWRJvraVLXcnFWaOnUqihcvjsGDB+dFPJVmaWmJsWPH4ubNm7h9+zb69+8PHx8fODg4wNraGhMmTMCdO3e++fO8ZoRI/Xh6ekJfXx9ubm6iowAAFD6JuJxFATjYWMAvOCLTFA1dmQx2Fcxhba7dpZlfKoi0Q/pUtc+ln1Vas30/SproQV9fP8s/enofH/Pw4UPs3LkTS5cuhSRJSE5Ohp6ensZcSJ2VqlWrYu7cuZg9ezb8/Pzg5eWFdevWYd68ebC1tUXXrl3h5uYGS0tLvE1IwvBdgZn+7R1sLLDCrSZMjfQF/i2IKCuSJMHDwwPt2rWDmZmZ6DgAAJmUjYUx3717B1NTU8TExHzXKcCYxGQM23mDb1rf0N3jyhdfKnRkQIMKFvDsXUdgMvpeuT1mlEEdMmqScw/eoNeWq9+8//WeqXgfkvudRNNL9bfKdk7/iPy5nHwJSEpKwokTJ+Dl5YUjR47gw4cPcHBwgM6vw/DkvSFSP/mkSx+0yen7qzocM+qQkSg7Ll26BHt7e5w9exa//vqrQl8ru8eNUparMDXSh2fvOngcEY/QyHiULZJf60eYP7XCreYXXyqKJL3BCrdmAlMRUV6Sd1Yp4NQRlDTRQ3Jy8jf/pKSkIDk5GYGBgRg9ejRGjRqFunXryn18dv+kpKQgLi4uR4//9H8rYm5xdsv3p4+rV68eIiMj8d/zSBglGn7xnJ9eM8LPIiLV5OHhAWtrazRq1Eh0lAxKXePN2pxl+Ws+/1Jx7sgezB7/Ox6710SNGjVExyOiPCBvqlqN8iWz9TySJGH69OmoXr06FixYAB0dldnYFWlpaTku2op6fKFChVA4X3GEZpE3NJKlmUgVxcbGYs+ePRg3bpxKvcdp5sLIair9S0WDEQOwf8saDBs2DL6+vloxR5FIG3ztrJJdBXOscKuZ7ec4efIkfH19cezYMZX6MAE+buiUL18+4RsQpAsJj8Oviy98835eM0Kkmvbs2YOEhAT07NlTdJRMWJpVkL6+PpYvX46mTZtix44d6Nq1q+hIRJQHcjtVLS0tDRMnToSdnR2cnZ0VmFQz8EJ0IvW0adMmNGvWDJaWlqKjZKJawxSUoUmTJmjfvj3GjBnDXbCINIy1eX40rlQ0x6Vt//79uHHjBubMmcMzUNm0wq0m7CqYZ7otp6P7RKQ8//33HwICAlRmbeZPcaRZhS1atAiVK1fGzJkzsWDBAtFxiEiglJQUTJ48Gc2bN4eDg4PoOGqDF6ITqRcPDw8UKVIErVq1Eh3lCxxpVmFWVlb4888/sXTpUty/f190HCISaOvWrXjw4AHmzJkjOopa+t7RfSJSnuTkZHh6esLd3V1lro34FEuzihs9ejSsrKwwfPhwZGNJbSLSQO/fv8f06dPRsWNH1KzJaQVEpJm8vb3x5s0b9O7dW3SUr2JpVnGGhoZYtmwZTp8+jUOHDomOQ0QCrF27FmFhYZgxY4boKERECuPh4YFatWrB1tZWdJSvYmlWAy1atICzszNGjhyJhIQE0XGISIliY2Mxe/Zs9OzZE5UqVRIdh4hIIV6+fInjx4+r7CgzwNKsNpYuXYqXL19i/vz5oqMQkRItWbIE7969w9SpU0VHISJSGE9PT+jr68PNzU10lG9iaVYTNjY2GDNmDObNm4eQkBDRcYhICSIjI7Fw4UIMHjxY5dYrJSLKK5IkwcPDA+3atYOZmZnoON/E0qxGJk6cCAsLC4waNUp0FCJSgnnz5kGSJEycOFF0FCIihfHz88PDhw9VemoGwNKsVvLnz49Fixbh8OHDOHHihOg4RKRAL168wMqVKzFq1ChYWFiIjkNEpDCbNm2CtbU1GjVqJDpKllia1UyHDh3QuHFj/P7770hKShIdh4gUZObMmTA2Nsbo0aNFRyEiUpjY2Fjs2bMHvXr1go6OatdS1U5HX5DJZFi+fDkePXqEpUuXio5DRAoQHByMTZs2YcKECShYsKDoOERECrN7924kJiaiZ8+eoqPIxdKshqpWrYqhQ4dixowZePHiheg4RJTHpkyZgmLFimHIkCGioxARKZSHhweaNWumFhc7szSrqWnTpiF//vz4448/REchojx08+ZN7Ny5E1OmTIGRkZHoOERECvPff/8hICAAffr0ER0lW1ia1ZSZmRn++usv7Ny5E76+vqLjEFEemTRpEipUqIBevXqJjkJEpFAeHh4oUqQIWrVqJTpKtrA0q7Hu3bujXr16GDp0KFJSUkTHIaJc8vPzw7FjxzBjxgzo6+uLjkNEpDDJycnw9PSEu7s78uXLJzpOtrA0qzEdHR2sWLECd+7cwdq1a0XHIaJcSF+P2dbWFp06dRIdh4hIoby9vfHmzRuVX5v5UyzNaq5WrVro27cvJk+ejPDwcNFxiOg7nTp1Cr6+vpg9e7bKL7tERJRbmzZtQq1atWBrays6SrbxnVkDzJkzBzKZjLuGEamptLQ0TJw4EfXr14eLi4voOEREChUWFobjx4+r1SgzwNKsEczNzTFr1ixs2rQJV65cER2HiHJo//79uH79OubOnQuZTCY6DhGRQnl6esLAwABubm6io+QIS7OGGDBgAGxtbTF06FCkpaWJjkNE2ZSSkoLJkyejefPmcHBwEB2HiEihJEmCh4cH2rVrBzMzM9FxcoSlWUPo6upi5cqVuHr1KrZs2SI6DhFlk6enJx48eIDZs2eLjkJEpHCXLl1CUFCQ2qzN/CmWZg3SoEEDdO3aFePHj8fbt29FxyEiOd6/f49p06ahQ4cO+Omnn0THISJSOA8PD1hbW6Nhw4aio+QYS7OGmT9/PhITEzF16lTRUYhIjrVr1+LFixeYOXOm6ChERAr37t077NmzB71791bLVYLULzFlqWTJkpg6dSpWrVqF27dvi45DRN8QGxuLOXPmoGfPnqhUqZLoOERECrdnzx4kJiaiR48eoqN8F5ZmDTR8+HBUqFABw4YNgyRJouMQ0VcsXboUMTExPCtERFrDw8MDjo6OsLS0FB3lu7A0ayADAwMsX74cFy5cwO7du0XHIaLPREZGYuHChRg8eDCsrKxExyEiUrj//vsPAQEBarc286dYmjVUs2bN0KZNG4wePRpxcXGi4xDRJ/7666+MDU2IiLSBh4cHihQpglatWomO8t1YmjXY4sWLERUVxaWsiFTIixcvsGLFCowcORIWFhai4xARKVxycjI8PT3h7u6OfPnyiY7z3ViaNVjZsmUxfvx4LFq0CA8fPhQdh4gAzJw5E8bGxhg9erToKERESuHt7Y03b96o5drMn2Jp1nBjx45FqVKl8Pvvv/OiQCLBgoODsWnTJkyYMAGmpqai4xARKcWmTZtQq1YtVKtWTXSUXGFp1nBGRkZYunQpTpw4gaNHj4qOQ6TVpk6diqJFi2LIkCGioxARKUVYWBiOHz+u9qPMAEuzVmjVqhUcHR0xYsQIJCYmio5DpJVu3bqFnTt3YsqUKTAyMhIdh4hIKTw9PWFgYIDOnTuLjpJrLM1aQCaTYdmyZXj+/DkWLlwoOg6RVvrzzz9Rvnx5tV5uiYgoJyRJgoeHB9q3bw8zMzPRcXKNpVlLVKpUCSNHjsScOXPw5MkT0XGItIq/vz+OHTuGGTNmQF9fX3QcIiKluHTpEoKCgjRmsIClWYtMmjQJhQsX5lX7REokSRImTpwIW1tbdOrUSXQcIiKl8fDwQLly5dCwYUPRUfIES7MWMTExwcKFC7F//36cOXNGdBwirXDq1ClcuHABs2fPho4O33KJSDu8e/cOe/bsQa9evTTmvU8z/haUbZ07d4aDgwOGDRuGpKQk0XGINFr6KHP9+vXh4uIiOg4RkdLs2bMHiYmJ6Nmzp+goeYalWcvIZDKsWLECDx8+xIoVK0THIdJo+/fvx/Xr1zFnzhzIZDLRcYiIlGbTpk1wdHRE6dKlRUfJMyzNWsjW1haDBw/GtGnT8PLlS9FxiDRSSkoKJk2aBEdHR42Zz0dElB337t3D5cuXNWJt5k+xNGupGTNmwNDQEOPGjRMdhUgjeXp64sGDB5gzZ47oKERESuXh4YEiRYqgZcuWoqPkKZZmLVWoUCHMnTsX27Ztg5+fn+g4RBrlw4cPmDZtGjp06ICffvpJdBwiIqVJTk6Gp6cnunXrhnz58omOk6dYmrVY7969Ubt2bQwdOhSpqami4xBpjLVr1+LFixeYMWOG6ChEREp17NgxhIeHa8zazJ9iadZiOjo6WLlyJQIDA7F+/XrRcYg0QmxsLGbPno2ePXuicuXKouMQESmVh4cHateujWrVqomOkudYmrVcnTp10Lt3b0yaNAmRkZGi4xCpvWXLliEmJgZTp04VHYWISKnCwsJw/PhxjRxlBliaCcDcuXORmpqKP//8U3QUIrUWGRmJBQsWYNCgQbCyshIdh4hIqTw9PWFgYIDOnTuLjqIQLM2EokWLYsaMGVi/fj3+/fdf0XGI1NZff/2F1NRUTJw4UXQUIiKlkiQJHh4eaN++PczMzETHUQiWZgIADB48GD/++COGDRuGtLQ00XGI1M6LFy+wYsUKjBo1CkWLFhUdh4hIqS5duoSgoCCNnZoBsDTT/9PT08PKlSsREBCAbdu2iY5DpHZmzZoFY2NjjB49WnQUIiKl27RpE8qVK6fRmzmxNFOGhg0bonPnzhg3bhxiYmJExyFSG48ePcLGjRsxfvx4mJqaio5DRKRU7969w969e9GrVy/o6GhutdTcvxl9lwULFiAuLg7Tp09HSHgczj14g8cR8aJjEam0KVOmoGjRohg6dKjoKERESrd7924kJiaiZ8+eoqMolJ7oAKRaSpcujTETp2Ltzfc4sPhCxu0ONhZY4VYTpkb6AtMRqZ5bt25h586dWLNmDYyMjETHISJSOg8PDzg6OqJ06dKioygUR5rpC8FFG8CwbPVMt/kFR2DYzhuCEhGprkmTJqFcuXIaffELEdG33Lt3D5cvX0afPn1ER1E4jjRTJiHhcbj0KArQ0c10e6okwTcoHI8j4mFtnl9QOiLV4u/vj6NHj8LLywv6+jwLQ0Tax8PDA0WKFEHLli1FR1E4jjRTJk+iErK8PzSS85uJgI9rkk6cOBG2trYau5A/EVFWkpKS4OnpiW7duiFfvnyi4ygcR5opkzKFjbO8v2wRjjITAcDp06dx4cIFHD16VKOvFici+hZvb2+Eh4drzfQ0vtNTJuUsCsDBxgI6ssy3S2mpMI55giIGqWKCEamQ9FHmX375BS4uLqLjEBEJsWnTJtSuXRvVqlUTHUUpWJrpCyvcaqJmicyrAFSz0MfLfbNgb2+P58+fC0pGpBr279+Pf//9F3PnzoVMJpP/A0REGiYsLAw+Pj5aM8oMsDTTV5ga6WP0z4Z4sa4/pv9aDOdGN8KxMU64dO403r59i3r16uHWrVuiYxIJkZKSgsmTJ8PR0VGjd74iIsrK1q1bYWBgADc3N9FRlIalmb4qKioKKdFhaFa1VMZqGT/++CMuX76MYsWKoUGDBjh16pTglETKt23bNty/fx+zZ88WHYWISAhJkuDh4YH27dtr1S6oLM30VVFRUQCAQoUKZbq9RIkSuHDhAuzt7eHi4oLNmzeLiEckxIcPHzBt2jS0b98eP//8s+g4RERCXLx4EcHBwVqxNvOnuHoGfVVUVBSMjY1haGj4xX0FChTA4cOHMXToUPTu3RuhoaGYNm0a53aSxlu3bh2eP3+OkydPio5CRCSMh4cHypUrBwcHB9FRlIqlmb4qOjoahQsX/ub9enp6WLNmDaytrTF+/HiEhoZiw4YNMDAwUGJKIuWJi4vDrFmz0LNnT1SuXFl0HCIiId69e4e9e/di4sSJWrfcJkszfVVUVNQXUzM+J5PJMG7cOJQpUwY9evTA8+fPsX//fpiZmSknJJESLV26FDExMZg6daroKEREwuzevRvv379Hjx49REdROu36ikDZFhUVleVI86c6d+6M06dP48aNG2jQoAGePn2q4HREyhUZGYkFCxZg0KBBsLKyEh2HiEgYDw8PODo6onTp0qKjKB1LM31VTkozADg4OMDf3x8JCQmoV68ebty4ocB0RMo1f/58pKamYuLEiaKjEBEJc+/ePVy+fFmr1mb+FEszfZW8Oc1fU7lyZQQEBKB06dKwt7eHj4+PgtIRKU9YWBiWL1+OkSNHomjRoqLjEBEJ4+HhAXNzc7Rq1Up0FCFYmumrsjOn+WuKFSuGc+fOoUmTJmjZsiXWr1+vgHREyjNz5kwYGxtjzJgxoqMQEQmTlJQET09PuLu7a+1F/yzN9FU5nZ7xqfz58+PAgQMYNGgQBgwYgIkTJyItLS2PExIp3qNHj7Bx40aMHz9eqxbwJyL6nLe3N8LDw7VubeZPcfUM+kJaWtp3Tc/4lK6uLpYvXw5ra2uMGTMGoaGh2Lx5M/Lly5eHSYkUa+rUqShatCiGDh0qOgoRkVCbNm1C7dq1UbVqVdFRhGFppi/ExsYiLS0tV6UZ+Lgk3ahRo2BlZQV3d3e8ePECBw8ezPXzEilaSHgcLly/hz0+57B89mQYGRmJjkREJExYWBh8fHywevVq0VGEYmmmL3xrC+3v1b59e5QsWRKtWrWCnZ0djh8/Dmtr6zx5bqK89DYhCcN3BcI3KBwAULL/evjpF4FbYjJMjfQFpyMiEmPr1q3Ily8fOnfuLDqKUJzTTF9IL815OSJcv359BAQEIDk5GfXq1cPVq1fz7LmJ8srwXYHwC47IdJv/oygM28klFIlIOz0Kj8XG4wFw6dRT66/tYGmmLyiiNAOAjY0NAgICUK5cOTRq1AhHjhzJ0+cnyo2Q8Dj4BoUjVZIy3Z4qSfANCsfjiHhByYiIlO9tQhK6e1xBk8W+SG0wAFeLu6C7xxXEJCaLjiYMSzN9ITo6GkDel2YAsLCwwN9//w0nJye0adMGq1atyvPXIPoeT6ISsrw/NJKlmYi0x9fOvPkFR2j1mTeWZvpCVFQUdHV1YWJiopDnNzIywp49ezBixAgMHToUY8aM4ZJ0JFyZwsZZ3l+2SH4lJSEiEotn3r6OFwLSF9I3NpHJZAp7DR0dHSxatAhlypTBiBEj8OTJE3h6enKVAhKmpIkedN88RKp5eUBHN+N2XZkMdhXMYW3O0kxE2iE7Z9608T2RI830hdxsbJJTw4cPx4EDB+Dt7Y2mTZsiIiJC/g8RKcD48eMRtm8WapbMPOJsV8EcK9xqCkpFRKR8pU2z3lNBW8+8caSZvqDM0gwArVu3xvnz59GiRQvUr18fPj4+KF++vNJen8jHxwfLli3DsmXLMHx4UzyOiEdoZDzKFsmvlaMpRKS9JEnCvD9H4X18WRhb/4RPJ09q+5k3jjTTF3K7G+D3qFOnDi5fvgwdHR3Uq1cPly9fVurrk/Z6/fo1evbsCScnJwwbNgwAYG2eH40rFdXaDwYi0l6TJk2Ch4cHZjqVQwMbi0z3afuZN4400xeioqJgaWmp9NctV64c/P394erqisaNG8PLywtt27ZVeg7SHpIkoVevXgCAzZs3K3QePxGRqluxYgXmzJmDhQsXol+PrugH8MzbJzjSTF9Q9vSMTxUuXBinT5+Gq6sr2rdvj6VLlwrJQdphxYoV8PHxwebNm1GsWDHRcYiIhNm9ezd+//13jB49GqNHj864nWfe/ocjzfQFkaUZAAwNDbFjxw6UKVMGI0eOxOPHj7F48WLo6urK/2GibLp9+zbGjh2L4cOHw9nZWXQcIiJhzp49i27duqFr166YP3++6Dgqi6WZviBiTvPndHR08Ndff8Ha2hpDhgzB06dP4eXlhVfxaXgSlcDTRJQriYmJcHNzQ8WKFfHXX3+JjkNEJMz169fRpk0b/Prrr/Dw8ICODichfAtLM2WSmJiIxMREFCpUSHQUAMDAgQNhaWmJzt17o8aIDUgqUiHjPgcbC6xwqwlTI32BCUkdjR07Fo8ePcLVq1dhaGgoOg4RkRCPHj2Ck5MTKleujH379kFfn5+nWeHXCcpEkVtofy8XFxc0mbwdHwpZZ7pd27fzpO9z7NgxrFy5EgsXLkTVqlVFxyEiEuL169dwdHSEqakpvL29UaBAAdGRVB5LM2USFRUFQLVKc0h4HAJfJ0Gmk3lOs7Zv50k59+rVK/Tq1QstWrTA4MGDRcchIhIiNjYWzs7OSEhIwKlTp2BhYSH/h4ilmTJTxZHm7GznSSRPWloaevToAV1dXWzatInLyxGRVkpKSkLbtm0RHByMEydOoGzZsqIjqQ3OaaZMVHGkuUxh4yzv19btPClnli1bhlOnTuHEiRMoWrSo6DhEREqXPnhw8eJFnDx5Era2tqIjqRWONFMm6aXZzMxMbJBPlLMoAAcbC+h+NjKoI/t4MSBX0SB5AgMDMX78eIwcORKOjo6i4xARKZ0kSRg1ahR2794NLy8vNGzYUHQktcPSTJlERUXBxMRE5a6gXeFWE3YVzDPdVlSK1urtPCl7EhIS0KVLF/zwww+YO3eu6DhERELMnz8fy5Ytw+rVq9GuXTvRcdQSp2dQJqqwRvPXmBrpw7N3nYztPD1XLYLPnq0wntFJdDRScWPGjEFoaCiuXbuGfPnyiY5DRKR0W7Zswfjx4zFlyhQMHDhQdBy1xZFmykT0boDypG/nOaJPF7x+/RrHjh0THYlU2OHDh7FmzRosXrwYVapUER2HiEjpvL290bdvX/Tv3x/Tpk0THUetsTRTJlFRUSqzsUlWqlevjtq1a2PDhg2io5CKCgsLQ58+feDq6ooBAwaIjkNEpHQBAQHo0KEDWrZsiVWrVnHVoFxiaaZMVH2k+VP9+vXDiRMn8PTpU9FRSMWkXyFuYGCAjRs38oOCiLTOf//9hxYtWqBWrVrYsWMH9PQ4Ize3WJopE1Wd0/w1nTt3hrGxMTZv3iw6CqmYxYsX48yZM/D09IS5ubn8HyAi0iDPnz+Ho6MjSpYsicOHD8PIyEh0JI3A0kyZqNNIs4mJCdzc3LBp0yakpqaKjkMq4vr165g4cSLGjBmDpk2bio5DRKRU0dHRaN68OWQyGU6cOKEWUy7VBUszZaIuc5rT9evXD8+ePcOpU6dERyEVEB8fjy5duqBq1aqYPXu26DhEREqVmJiIVq1a4eXLlzh58iRKlSolOpJGYWmmDKmpqXj79q3ajDQDQO3atWFra8sLAgkAMGrUKDx79gw7d+6EgYGB6DhEREqTkpKCzp07499//4W3tzcqV64sOpLGYWmmDDExMQBUawtteWQyGfr27YujR4/i1atXouOQQAcPHsT69euxdOlSVKpUSXQcIiKlkSQJgwYNgre3N/bt24d69eqJjqSRWJopQ/oW2upUmgHA3d0denp62LJli+goJMiLFy/Qt29ftGnTBn379hUdh4hIqaZOnYqNGzdi06ZNcHZ2Fh1HY7E0U4b00qxOc5qBj3nbt2+PjRs3QpIk0XFIyVJTU9GtWzcYGRlhw4YNXF6OiLTK6tWrMXPmTMybNw89evQQHUejsTRTBnUdaQY+XhD46NEjnD9/XnQUUrKFCxfi/Pnz8PT0RJEiRUTHISJSmn379mHo0KEYMWIExo4dKzqOxmNppgzR0dEA1LM029vbo1KlSrwgUMtcu3YNkyZNwtixY/Hrr7+KjkNEpDTnz59H165d0blzZyxatIhn2ZSApZkyREVFwcDAAMbGxqKj5Fj6BYH79+9HZGSk6DikBHFxcejSpQuqV6+OGTNmiI5DRKQ0N2/ehKurKxwcHLBlyxbo6LDOKQP/lSlD+sYm6vpttXv37pAkCdu2bRMdhZRgxIgRCAsLw44dO7i8HBFpjcePH6N58+awsbHBgQMH+P6nRCzNlEHdNjb5XNGiReHq6ooNGzbwgkANt2/fPmzatAnLly9HxYoVRcchIlKK8PBwODo6okCBAjh+/DhMTExER9IqLM2UITo6Wi3nM3+qX79+uHfvHgICAkRHIQV59uwZ+vXrh/bt26NXr16i4xARKUVcXBycnZ3x7t07nDx5EkWLFhUdSeuwNFOG9OkZ6qxp06YoW7YsNm7cKDoKKUD68nIFChTA+vXr1XYqERFRTiQlJaFdu3Z48OABfHx8UK5cOdGRtBJLM2XQhNKso6ODPn36YPfu3Xj37p3oOJTH/vrrL/j6+mL79u1qPZWIiCi70tLS0Lt3b5w/fx6HDh1CzZo1RUfSWizNlEHd5zSn69WrF96/f48dO3aIjkJ56MqVK5g6dSomTJiAhg0bio5DRKQUf/zxB3bs2IFt27ZxaU3BWJopgybMaQaAUqVKwcXFhWs2a5DY2Fh06dIFP/30E6ZNmyY6DhGRUixcuBCLFy/G8uXL0bFjR9FxtB5LMwEAJEnSiOkZ6fr164fr16/j+vXroqNQHhg+fDhev34NLy8v6Ovri45DRKRw27Ztwx9//IGJEydi6NChouMQWJrp/yUkJCApKUljSrOTkxNKlizJ0WYNsHv3bmzZsgUrV65EhQoVRMchIlI4Hx8f9O7dG71798asWbNEx6H/x9JMAD7OZwagEXOaAUBPTw+9evWCl5cX4uPjRceh7/TkyRMMGDAAnTp1Qvfu3UXHISJSuH/++Qft27eHk5MT1q1bx1WCVAhLMwH4OJ8ZgMaMNANAnz59EBsbi71794qOQt8hNTUV7u7uMDU1xdq1a/nBQUQa78GDB3BxcUGNGjWwa9cu6OnpiY5En2BpJgD/G2nWpNJsbW2N3377jVM01NScOXPg7++P7du3w8zMTHQcIiKFCgsLg6OjI4oVK4ajR4/C2NhYdCT6DEszAdDM0gx8vCDQ398fd+/eFR2FciAgIADTp0/Hn3/+CXt7e9FxiIgU6u3bt2jevDlSU1Nx4sQJjfss1hQszQTgf6XZ1NRUcJK85erqCgsLC+4QqEbevXuHrl27onbt2pgyZYroOERECvX+/Xu4urri+fPnOHnyJCwtLUVHom9gaSYAH+c0m5mZQVdXV3SUPGVgYIAePXrA09MT79+/Fx2HsmHo0KGIiIiAl5cX5/MRkUZLTU1F165dcfXqVRw7dgxVqlQRHYmywNJMADRjC+1v6dOnD6KionDw4EHRUUiO9F2vVq9ejXLlyomOQ0SkMJIkYciQITh8+DB2796N+vXri45EcrA0EwDNLs2VK1eGvb09p2iouMePH2PQoEHo0qUL3N3dRcchIlKoGTNmYN26dVi3bh1atmwpOg5lA0szAdDs0gx8vCDw77//xqNHj0RHoa9ISUmBu7s7ChcujNWrV4uOQ0SkUOvWrcO0adMwe/Zs9OnTR3QcyiaWZgLwsTRrysYmX9O+fXuYmZlxtFlFzZo1C5cvX4aXl5fGXYxKRPSpgwcPYvDgwRg6dCgmTJggOg7lAEszAfh4IaAmjzQbGRnB3d0dmzdvRnJysug49Ak/Pz/MnDkTU6ZM4Zw+ItJovr6+cHNzQ/v27bF06VJu2qRmWJoJgOZPzwA+TtF4/fo1jh07JjoK/b+YmBh07doVv/zyC/7880/RcYiIFOb27dto1aoV7Ozs4OnpqXGrVWkDlmYCoB2l2dbWFnXq1OEOgSpCkiQMGjQI0dHR2L59O5eXIyKNFRoaCkdHR1hbW+PgwYPIly+f6Ej0HViaCcnJyYiNjdXoOc3p+vbtixMnTuDp06eio2i97du3Y+fOnVi7di3Kli0rOg4RkUJERETA0dERhoaG8PHxQcGCBUVHou/E0kx4+/YtAM3bQvtrOnfuDGNjY2zevFl0FK0WEhKCIUOGoFu3bnBzcxMdh4hIIeLj4+Hi4oLo6GicOnUKxYsXFx2JcoGlmTK20NaG0mxiYgI3Nzds2rQJqampouNopeTkZHTp0gUWFhZYuXKl6DhERAqRnJyMDh064N69e/Dx8UGFChVER6JcYmkmrSrNwMcLAp89e4ZTp06JjqKVZsyYgWvXrsHLy4unKYlII0mShL59++LMmTM4cOAAfv75Z9GRKA+wNFNGadaGOc0AULt2bdja2vKCQAEuXryIOXPmYNq0aahXr57oOERECjF+/Hh4enrC09MTv/32m+g4lEdYmgnR0dEAtKc0y2Qy9OvXD0ePHsWrV69Ex9Eab9++hbu7O+zs7LigPxFprCVLlmD+/PlYsmQJOnfuLDoO5SGWZkJUVBSMjIxgZGQkOorSdO3aFXp6etiyZYvoKFpBkiQMGDAAMTEx2L59O9cnJSKN5OXlhVGjRmHcuHEYMWKE6DiUx1iaSSvWaP5coUKF0L59e2zcuBFpaWmi42i8rVu3Ys+ePVi/fj2srKxExyEiynOnTp1Cz5490aNHD8ydO1d0HFIAlmbSytIMfLwg8NGjR7hw4YLoKBotODgYQ4cORc+ePdGxY0fRcYiI8tzVq1fRtm1bNGvWDBs2bOD22BqKpZkQHR2tNfOZP2Vvb49KlSrxgkAFSl9ernjx4li+fLnoOEREeS4oKAjOzs6oWrUq9uzZA319fdGRSEFYmklrR5plMhn69u2L/fv3IzIyUnQcjTR16lTcuHEDO3bsgImJieg4RER56uXLl3B0dIS5uTm8vb2RP39+0ZFIgViaSWtLMwD06NEDkiRh27ZtoqNonPPnz2PevHmYMWMG6tSpIzoOEVGeiomJgZOTEz58+ICTJ0+iSJEioiORgrE0k1aXZgsLC7Ru3RobNmyAJEmi42iMqKgodOvWDQ4ODhg7dqzoOEREeer9+/do3bo1njx5gpMnT/ICZy3B0kxaO6c5Xb9+/XDv3j0EBASIjqIR0peXi4+Px7Zt27i8HBFplNTUVHTr1g0BAQE4cuQIqlatKjoSKQlLs5Z7FB6LBNOygElR0VGEadKkCcqWLYuNGzeKjqIRPDw8sG/fPmzYsAGWlpai4xAR5VpIeBzOPXiDkPA4/P777zhw4AB27doFe3t70dFIifREByAx3iYkYfiuQPgGhcO8/VSsDwPue1zBCreaMDXSrit/dXR00KdPH8ydOxdLly5FwYIFRUdSWw8fPsTw4cPRp08ftGvXTnQcIqJc+fSzMl1ieFEsWbUOrVu3FheMhOBIs5YavisQfsERmW7zC47AsJ03BCUSq1evXnj//j127NghOoraSkpKQpcuXVCqVCksXbpUdBwiolz72melcbmfcM3AVlAiEokjzVooJDwu07fmdKmSBN+gcDyOiIe1uXYtm1OqVCm4uLhgrdcBVGrcFmWL5Ne6f4PvFRIehydRCdjrsQq3bt1CQEAAChQoIDoWEeVC+nGt6e+FkiTh/fv3SExMRGJiIhISEjL++8fPyvdf/gxkWvtZqe1YmrXQk6iELO8PjdS+N4K3CUlItuuPt29l6LXlKgDAwcZCK6erZNcXpy116qDuOE9UqMIRGCJ19bXpCMp+L0xOTs5UXj8vs1ndl9PHJiYmfjOHYbmfUazj9G/er42fldqOpVkLlSlsnOX9ZYto35vA8F2BeBijA+B/y86lT1fx7M01hr/ma6ctw1IL8t+MSI19a+re4O1XsaxNRaWU2dTU1GznNTAwgJGREYyMjGBsbJzx3z/932ZmZt+8L6ufi0zSRc99j7/52tr4WantWJq1UDmLAnCwsYBfcARSP1mbWFcmg10Fc6375szpKjnHfzMizZPVce0XEo0SFasjJTosy+fQ0dGRW0wLFSqEUqVKyS2t8u4zMjJS+JKWDjfj+FlJGViatdQKt5oYtvNGpjdIuwrmWOFWU2AqMThdJef4b0akeeQd19MXrcLPJY2yLLj6+vqQyWRKSqx4/KykT7E0aylTI3149q6DxxHxCI2M1/iLPbLC6So5x38zIs0j77h2a/mb1n1O8LOSPsUl57SctXl+NK5UVKvfBNKnq+h+NjqiK5PBwcZCq/9tvoX/ZkSah8f1t/GzkgCWZiIAH0/B2VUwz3QbT8Fljf9mRJqHxzXRt3F6BhF4Cu578N+MSPPwuCb6NpZmok9Ym/MDIqf4b0akeXhcE32J0zOIiIiIiORgaSYiIiIikoOlmYiIiIhIDpZmIiIiIiI5WJqJiIiIiORgaSYiIiIikoOlmYiIiIhIDpZmIiIiIiI5WJqJiIiIiORgaSYiIiIikoOlmYiIiIhIDr3sPEiSJADAu3fvFBqGSFOkHyvpx44q4nFNlDM8rok0U3aP7WyV5tjYWACApaVlLmMRaZfY2FiYmpqKjvFVPK6Jvg+PayLNJO/YlknZ+MqclpaGsLAwmJiYQCaT5WlAIk0kSRJiY2NRsmRJ6Oio5iwoHtdEOcPjmkgzZffYzlZpJiIiIiLSZqr5VZmIiIiISIWwNBMRERERycHSTEREREQkB0szEREREZEcLM1ERERERHKwNBMRERERycHSTEREREQkx/8BkD3R3bfjlqoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x600 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(2,3,figsize = (9,6))\n",
    "axes = axes.flatten()\n",
    "\n",
    "for idx in range(6):\n",
    "    Gcc_idx = G.subgraph(list_cc[idx])\n",
    "    \n",
    "    pos_Gcc_idx = {k: pos[k] for k in list(Gcc_idx.nodes())}\n",
    "    \n",
    "    # 可视化连通分量\n",
    "    \n",
    "    nx.draw_networkx(Gcc_idx, \n",
    "                     pos_Gcc_idx, \n",
    "                     ax = axes[idx],\n",
    "                     with_labels = False,\n",
    "                     node_size=20)\n",
    "    \n",
    "plt.savefig('前6大连通分量.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b81f77fd-3e49-455b-86fd-a7b6621b5b02",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "234f6f1c-f534-44b0-8c1a-68c32c8ca77a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3bd2fd3c-6196-4c56-baf4-9a3f3a66e6af",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
